_p_o_r_t is the audio output port to which you want to write samples.
This is the returned value of an aaaallllOOOOppppeeeennnnPPPPoooorrrrtttt((((3333ddddmmmm)))) call.
_b_u_f_s is an array of pointers to sample buffers, each element of
which corresponds to a single channel of audio output.
_s_t_r_i_d_e_s is an array of integers, one corresponding to each output
channel. Each element indicates the number of interleaved
channels in the buffer directed at that channel.
_f_r_a_m_e_c_o_u_n_t is the number of sample frames that you want to write to the
audio port.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
aaaallllWWWWrrrriiiitttteeeeBBBBuuuuffffffffeeeerrrrssss transfers data to an audio port from a set of buffers, or
from different locations in a single buffer. aaaallllWWWWrrrriiiitttteeeeBBBBuuuuffffffffeeeerrrrssss allows the
application to specify how the data is interleaved.
_b_u_f_s is an array of pointers to sample buffers. Each element of _b_u_f_s
corresponds to one output channel. If the element is 0, that channel will
be zeroed on output. This allows an application to only direct audio at
the channels of interest.
The sample buffers can be arbitrarily interleaved; the _s_t_r_i_d_e_s parameter
indicates the number of channels in each source sample buffer. For
example, if _s_t_r_i_d_e_s[_n] is 1, then bufs[n] is mono; if _s_t_r_i_d_e_s[_n] is 2,
then bufs[n] is interleaved stereo, and aaaallllWWWWrrrriiiitttteeeeFFFFrrrraaaammmmeeeessss will read every
other sample from that buffer. The elements of _s_t_r_i_d_e_s can have any
value. If _s_t_r_i_d_e_s is 0, all the sample buffers are considered mono, and
aaaallllWWWWrrrriiiitttteeeeBBBBuuuuffffffffeeeerrrrssss does non-interleaved output.
There must be exactly as many elements in _b_u_f_s and _s_t_r_i_d_e_s as the number
of channels specified for the port with aaaallllSSSSeeeettttCCCChhhhaaaannnnnnnneeeellllssss((((3333ddddmmmm)))).
aaaallllWWWWrrrriiiitttteeeeBBBBuuuuffffffffeeeerrrrssss blocks until _f_r_a_m_e_c_o_u_n_t sample frames have been written to
the port. If you do not wish to block, make sure that _f_r_a_m_e_c_o_u_n_t is less
than the return value of aaaallllGGGGeeeettttFFFFiiiillllllllaaaabbbblllleeee((((3333ddddmmmm)))).
The expected format of each sample depends upon the configuration of the
audio port. Each sample can be an 8-, 16-, or 32-bit integer, or a
single- or double-precision floating-point value or subcode data; see
aaaallllSSSSeeeettttSSSSaaaammmmppppFFFFmmmmtttt((((3333ddddmmmm)))) and aaaallllSSSSeeeettttWWWWiiiiddddtttthhhh((((3333ddddmmmm)))) for a description of how these
formats work. By default, the sample format is 16-bit integer (short).
Note that since an audio port contains an internal queue, samples written
to the port will not immediately come out the associated audio device or
devices. For precise synchronization of audio and other media, use
aaaallllGGGGeeeettttFFFFrrrraaaammmmeeeeTTTTiiiimmmmeeee((((3333ddddmmmm)))) and aaaallllGGGGeeeettttFFFFrrrraaaammmmeeeeNNNNuuuummmmbbbbeeeerrrr((((3333ddddmmmm)))) to determine when samples
will actually be output.
In order to achieve the best possible performance, aaaallllWWWWrrrriiiitttteeeeBBBBuuuuffffffffeeeerrrrssss does
not attempt to verify that _p_o_r_t, _b_u_f_s, or _s_t_r_i_d_e_s are valid. You should
make certain these values are valid before passing them as arguments to